package dividendslog

import "yundian/internel/pkg/dingo"

// Dividends Log 代理商、商户 - 红利表
type DividendsLog struct {
	Id      int    `gorm:"column:id" json:"id"`
	TradeNo string `gorm:"column:trade_no" json:"tradeNo"`
	// 价格相关
	Money              int64  `gorm:"column:money" json:"money"`
	MoneyStr           string `gorm:"column:money_str" json:"moneyStr"`
	PayMoney           int64  `gorm:"column:pay_money" json:"payMoney"`        // 支付金额 - 单位分
	PayMoneyStr        string `gorm:"column:pay_money_str" json:"payMoneyStr"` //
	SettlementMoney    int64  `gorm:"column:settlement_money" json:"settlementMoney"`
	SettlementMoneyStr string `gorm:"column:settlement_money_str" json:"settlementMoneyStr"`
	// 分润信息
	ProfitType       int8 `gorm:"column:profit_type" json:"profitType"`
	ProfitProportion int8 `gorm:"column:profit_proportion" json:"profitProportion"`
	// 设备信息
	DeviceSn       string `gorm:"column:device_sn" json:"deviceSn"`
	SharedMode     string `gorm:"column:shared_mode" json:"sharedMode"`
	FeeMode        int8   `gorm:"column:fee_mode" json:"feeMode"`
	DeviceTypeID   int    `gorm:"column:device_type_id" json:"deviceTypeId"`
	DeviceTypeName string `gorm:"column:device_type_name" json:"deviceTypeName"`
	// 用户信息
	UserId     int    `gorm:"column:user_id" json:"userId"`
	UserName   string `gorm:"column:user_name" json:"userName"`
	PlaceId    int    `gorm:"column:place_id" json:"placeId"`
	PlaceName  string `gorm:"column:place_name" json:"placeName"`
	MemberId   string `gorm:"column:member_id" json:"memberId"`
	MemberName string `gorm:"column:member_name" json:"memberName"`
	// 状态
	State int8 `gorm:"column:state" json:"state"`
	// 时间
	PayAt        dingo.Time `gorm:"column:pay_at" json:"payAt"`
	SettlementAt dingo.Time `gorm:"column:settlement_at" json:"settlementAt"`
	CreateAt     dingo.Time `gorm:"column:create_at" json:"createAt"`
	UpdateAt     dingo.Time `gorm:"column:update_at" json:"updateAt"`

	EndDate  string `gorm:"column:end_date" json:"endDate"`
	EndMonth string `gorm:"column:end_month" json:"endMonth"`
}

// 公众号收益明细

type ProfitInfo struct {
	Id               int     `gorm:"column:id" json:"id"`
	SettlementMoney  int64   `gorm:"column:settlement_money" json:"settlementMoney"`
	Money            float64 `gorm:"column:money" json:"money"`
	MoneyStr         string  `gorm:"column:money_str" json:"moneyStr"`
	UserName         string  `gorm:"column:user_name" json:"userName"`
	Name             string  `gorm:"column:name" json:"name"`
	ProfitProportion int8    `gorm:"column:profit_proportion" json:"profitProportion"`
}

type PlaceProfitInfoByDay struct {
	Id       int     `gorm:"column:id" json:"id"`
	Total    float64 `gorm:"column:total" json:"total"`
	Day      string  `gorm:"column:day" json:"day"`
	UserName string  `gorm:"column:user_name" json:"userName"`
}

func New() *DividendsLog {
	return &DividendsLog{}
}

func (model *DividendsLog) Mutate(attrs ...DividendsAttr) *DividendsLog {
	DividendsAttrs(attrs).Apply(model)
	return model
}

func (model *DividendsLog) GetTableName() string {
	return "dividends_log"
}
